"use strict";
const crypto = require("crypto");
module.exports = (app) => {
    const { STRING, INTEGER, DATE, ENUM } = app.Sequelize;
    // 配置（重要：一定要配置详细，一定要！！！）
    const Refund = app.model.define("refund", {
        id: {
            type: INTEGER(30).UNSIGNED,
            primaryKey: true,
            autoIncrement: true
        },
        collar_id: {
            type: INTEGER(30).UNSIGNED,
            allowNull: false,
            comment: '领券表id',
            //  定义外键（重要）
            references: {
                model: 'coupons-collar', // 对应表名称（数据表名称）
                key: 'id' // 对应表的主键
            },
            onUpdate: 'restrict', // 更新时操作
        },
        user_id: {
            type: INTEGER(30).UNSIGNED,
            allowNull: false,
            comment: '用户id',
            //  定义外键（重要）
            references: {
                model: 'wx_user', // 对应表名称（数据表名称）
                key: 'id' // 对应表的主键
            },
            onUpdate: 'restrict', // 更新时操作
        },
        type: {
            type: STRING(200),
            allowNull: false,
            defaultValue: 0,
            comment: '退款时 类型'
        },
        recharge_amount: {
            type: STRING(200),
            allowNull: false,
            defaultValue: '0',
            comment: '充值金额',
        },
        refund_amount: {
            type: STRING(200),
            allowNull: false,
            defaultValue: '0',
            comment: '退款金额',
        },
        service_charge: {
            type: STRING(200),
            allowNull: false,
            defaultValue: '0',
            comment: '手续费',
        },
        status: {
            type: ENUM,
            values: ['success', 'fail', 'wait'],
            allowNull: false,
            defaultValue: 'wait',
            comment: '状态 success成功  fail失败  wait等待',
        },
        created_at: DATE,
        updated_at: DATE,
        
    });

    // 定义关联关系
    // Refund.associate = function (model) {
    //     Refund.hasOne(app.model.CouponsCollar);
    //     Refund.belongsTo(app.model.WxUser);
    // };
    return Refund;
};
